package com.hx.setting.entity;

import com.hx.setting.entity.Entity;
import java.io.Serializable;
import java.util.Date;
import org.json.JSONObject;

/**
 * Generate Date : 2014-03-16
 * Generate Version : v3.0
 * Generate Name : Honey v3.1 Test
 * Generate User : THINK
 * JDK Version : 1.5
 */
public class Users2groupEntity extends AbstractEntity implements Serializable, Entity
{

	/** 类序列化版本标识 */
	private static final long	serialVersionUID	= -7787035800349621168L;

	/** 主键 */
	private Long				id;

	/** 用户外键 */
	private Long				userId;

	/** [用户外键 ]关联对象,通过异步加载自动转载对象. */
	private UsersEntity			users;

	/** 用户组外键 */
	private Long				groupId;

	/** [用户组外键 ]关联对象,通过异步加载自动转载对象. */
	private GroupsEntity		groups;

	/** 
	 * 默认构造函数
	 */
	public Users2groupEntity()
	{
		super();
	}

	/** 
	 * 带参数构造函数
	 */
	public Users2groupEntity(Long id/*主键 */, Long userId/*用户外键 */, Long groupId/*用户组外键 */)
	{
		this.setId( id );//主键 
		this.setUserId( userId );//用户外键 
		this.setGroupId( groupId );//用户组外键
	}

	/** 
	 * 获取主键
	 * @return 主键
	 */
	@Override
	public final Long getId()
	{
		return this.id;
	}

	/** 
	 * 设定主键
	 * @param id
	 * @return 返回自身
	 */
	public final Users2groupEntity setId(Long id)
	{
		this.id = id;
		return this;
	}

	/** 
	 * 获取用户外键
	 * @return 用户外键
	 */
	public final Long getUserId()
	{
		return this.userId;
	}

	/** 
	 * 设定用户外键
	 * @param userId
	 * @return 返回自身
	 */
	public final Users2groupEntity setUserId(Long userId)
	{
		this.userId = userId;
		return this;
	}

	/** 
	 * 设定[用户外键 ]关联对象,通过异步加载自动转载对象.
	 */
	public void setUsers(UsersEntity users)
	{
		this.users = users;
	}

	/** 
	 * 获取[用户外键 ]关联对象,通过异步加载自动转载对象.<br />
	 * 已启用延迟加载特性,调用本方法时会引起关联的对象加载. 在List列表中慎用. <br />
	 * 如果需要延迟加载对象必须满足以下几个条件 : <ul>
	 * <li> 两个表之间必须有外键(物理外键或者虚拟外键)关联  </li>
	 * <li> 映射文件中必须启用外键关联配置  </li>
	 * <li> 系统配置文件必须启用延迟加载  </li>
	 * <li> getter方法不能使用final修饰 </li></ul>
	 * 默认情况以上条件全部开启 <br />
	 * @return
	 */
	public UsersEntity getUsers()
	{
		return this.users;
	}

	/** 
	 * 获取用户组外键
	 * @return 用户组外键
	 */
	public final Long getGroupId()
	{
		return this.groupId;
	}

	/** 
	 * 设定用户组外键
	 * @param groupId
	 * @return 返回自身
	 */
	public final Users2groupEntity setGroupId(Long groupId)
	{
		this.groupId = groupId;
		return this;
	}

	/** 
	 * 设定[用户组外键 ]关联对象,通过异步加载自动转载对象.
	 */
	public void setGroups(GroupsEntity groups)
	{
		this.groups = groups;
	}

	/** 
	 * 获取[用户组外键 ]关联对象,通过异步加载自动转载对象.<br />
	 * 已启用延迟加载特性,调用本方法时会引起关联的对象加载. 在List列表中慎用. <br />
	 * 如果需要延迟加载对象必须满足以下几个条件 : <ul>
	 * <li> 两个表之间必须有外键(物理外键或者虚拟外键)关联  </li>
	 * <li> 映射文件中必须启用外键关联配置  </li>
	 * <li> 系统配置文件必须启用延迟加载  </li>
	 * <li> getter方法不能使用final修饰 </li></ul>
	 * 默认情况以上条件全部开启 <br />
	 * @return
	 */
	public GroupsEntity getGroups()
	{
		return this.groups;
	}

	@Override
	public int hashCode()
	{
		int answer = -1;
		String solt = "$2Cz%";//随机盐
		answer = new StringBuilder().append( "Users2groupEntity" ).append( this.id ).append( this.userId ).append( this.groupId ).append( solt ).toString().hashCode();
		return answer;
	}

	@Override
	public String toString()
	{
		return new StringBuilder()
				.append( "Users2groupEntity : [" )
				.append( "    id : " )
				.append( this.id )
				.append( "    userId : " )
				.append( this.userId )
				.append( "    groupId : " )
				.append( this.groupId )
				.append( "]\n" )
				.toString();
	}

	public JSONObject toJsonObject()
	{
		JSONObject answer = new JSONObject();
		answer.put( "id" ,id == null ? "" : id );
		answer.put( "userId" ,userId == null ? "" : userId );
		answer.put( "users" ,users == null ? "" : users.toJsonObject() );
		answer.put( "groupId" ,groupId == null ? "" : groupId );
		answer.put( "groups" ,groups == null ? "" : groups.toJsonObject() );
		return answer;
	}

	public String toXml()
	{
		StringBuilder answer = new StringBuilder();
		answer.append( "<item>\n" );
		answer.append( "  <id>" ).append( id == null ? "" : id ).append( "</id>\n" );
		answer.append( "  <userId>" ).append( userId == null ? "" : userId ).append( "</userId>\n" );
		answer.append( "  <users>" ).append( users == null ? "" : users.toXml() ).append( "</users>\n" );
		answer.append( "  <groupId>" ).append( groupId == null ? "" : groupId ).append( "</groupId>\n" );
		answer.append( "  <groups>" ).append( groups == null ? "" : groups.toXml() ).append( "</groups>\n" );
		answer.append( "</item>\n" );
		return answer.toString();
	}
}
/* Honey v3.1 Test - version:4 - OriginalChecksum:Bc56626b5fda4d5b6da5d840534bea722 (do not edit this line) */
